﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace proyectoENS
{
    public sealed partial class frmAltaCurso : Form
    {
        private frmAltaCurso()
        {
            InitializeComponent();
            cargarComponentes();
        }
        private static  frmAltaCurso Instancia;
        public static frmAltaCurso onlyInstancia
        {
            get 
            {
                if (Instancia == null || Instancia.IsDisposed)
                    Instancia = new frmAltaCurso();
                return Instancia; 
            }
        }
        private static void frmAltaCurso_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            onlyInstancia.Hide();
        }
        private void frmAltaCurso_Load(object sender, EventArgs e)
        {
           
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            Cursos c = new Cursos();
            c.año = byte.Parse(numAño.Value.ToString());
            c.division = byte.Parse(numDiv.Value.ToString());
            c.idModalidad = ((Modalidades)cbxModalidad.SelectedItem).idModalidad;
            bool temp = true;
            List<Cursos> tmp = new List<Cursos>();
            tmp = DALCursos.getCursos();
            foreach (Cursos t in tmp)
            {
                if (c.idModalidad == t.idModalidad && c.division == t.division && c.año == t.año)
                {
                    temp = false;
                }
            }
            if (temp == true)
            {
                DALCursos.newCurso(c);
                cargarComponentes();
            }
            else
            {
                MessageBox.Show("Este curso ya existe");
            }
        }
        private void cargarComponentes()
        {
            dgvCursos.DataSource = DALCursos.getVwCursos();
            dgvCursos.Refresh();
            cbxModalidad.DataSource = DALModalidades.getModalidades();
            cbxModalidad.Refresh();
            dgModalidades.DataSource = DALModalidades.getModalidades();
            cbxMatModalidad.DataSource = DALModalidades.getModalidades();
            cbxMatAño.DataSource = DALCursos.getAños();
            this.cbxMatAño.SelectedIndexChanged += new System.EventHandler(this.cbxMatAño_SelectedIndexChanged);
            this.cbxMatModalidad.SelectedIndexChanged += new System.EventHandler(this.cbxMatModalidad_SelectedIndexChanged);
        }

        private void btnGuardarMod_Click(object sender, EventArgs e)
        {
            if (DALModalidades.getModalidadByDenom(txtDenomMod.Text) == null)
            {
                Modalidades M = new Modalidades();
                M.denomModalidad = txtDenomMod.Text;
                DALModalidades.newModalidad(M);
                dgModalidades.DataSource = DALModalidades.getModalidades();
                MessageBox.Show("Operacion Exitosa", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("La modalidad ya existe");
            }
        }

        private void btnMatAceptar_Click(object sender, EventArgs e)
        {
            cargardgvMaterias();
        }
        private void cargardgvMaterias()
        {
            int año = (int)cbxMatAño.SelectedItem;
            int idModalidad = (int)((Modalidades)cbxMatModalidad.SelectedItem).idModalidad;
            dgvMaterias.DataSource = DALMaterias.getMateriasByAñoModalidad(año, idModalidad);
            dgvMaterias.Refresh();
        }
        private void btnMatAgregar_Click(object sender, EventArgs e)
        {
            Materias m = new Materias()
            {
                año = (int)cbxMatAño.SelectedItem,
                idModalidad = (int)((Modalidades)cbxMatModalidad.SelectedItem).idModalidad,
                integradora = (bool)chbxIntegradora.Checked,
                nombreMateria = txtDenomMateria.Text
            };
            if (DALMaterias.newMateria(m) == 1)
            {
                MessageBox.Show("Operacion exitosa");
                cargarComponentes();
            }
            else
                MessageBox.Show("Se ha producido un error, compruebe los datos ingresados e intente de nuevo...");
        }

        private void cbxMatAño_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargardgvMaterias();
        }

        private void cbxMatModalidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargardgvMaterias();
        }
        private void dgvCursos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void tabCursos_Click(object sender, EventArgs e)
        {

        }

        private void dgvMaterias_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DALMaterias.editMaterias((Materias)dgvMaterias.CurrentRow.DataBoundItem);
        }

        private void dgModalidades_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DALModalidades.editModalidad((Modalidades)dgModalidades.CurrentRow.DataBoundItem);
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            DALCursos.eliminarCurso(((vwCursos)dgvCursos.CurrentRow.DataBoundItem).idCurso);
            cargarComponentes();
        }

     
    }
}
